package com.feisuanyz.lyweb01.pojo.dto;

import lombok.Data;
import lombok.AllArgsConstructor;
import jakarta.validation.constraints.NotNull;
import lombok.NoArgsConstructor;
import jakarta.validation.constraints.NotBlank;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 解决方案数据传输对象
 *
 * @author deng
 * @date 2025-02-26 11:57:37
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SolutionDTO {

    /**
     * 解决方案ID：必填（Update, Delete）
     */
    @NotNull(groups = { UpdateGroup.class, DeleteGroup.class }, message = "解决方案ID不能为空")
    @Schema(description = "解决方案ID：必填（Update, Delete）")
    private Integer solutionId;

    /**
     * 解决方案名称：必填（Create）
     */
    @NotBlank(groups = { CreateGroup.class }, message = "解决方案名称不能为空")
    @Schema(description = "解决方案名称：必填（Create）")
    private String solutionName;

    /**
     * 解决方案描述：选填
     */
    @Schema(description = "解决方案描述：选填")
    private String solutionDescription;

    /**
     * 创建人：必填（Create）
     */
    @NotNull(groups = { CreateGroup.class }, message = "创建人不能为空")
    @Schema(description = "创建人：必填（Create）")
    private Integer createBy;

    /**
     * 修改人：必填（Update）
     */
    @NotNull(groups = { UpdateGroup.class }, message = "修改人不能为空")
    @Schema(description = "修改人：必填（Update）")
    private Integer updateBy;
}
